home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / math / gle-3.000 / gle-3 / gle / os2 / readme.os2 next >
Text File  |  1995-03-08  |  19KB  |  433 lines

  1.  
  2.   ****************************************************************************
  3.   *                        GLE for OS/2 3.3 h                                *
  4.   *                                                                          *
  5.   *                       ported by Axel Rohde                               *
  6.   ****************************************************************************
  7.  
  8.   A little bit history:
  9.   ---------------------
  10.  
  11.                 32 bit DOS version of GLE by Axel Rohde
  12.                 ---------------------------------------
  13.  
  14.   Introduction: (By Chris)
  15.         For a long time I have been explaining to people that a 32bit 
  16.         dos version of GLE was not possible with currently available 
  17.         compilers and libraries.
  18.         Clearly Axel has no appreciation for the impossible and has gone
  19.         ahead and compiled a version anyway (with absolutely no assistance
  20.         from me).  On any 386 or better machine this version of GLE should 
  21.         run without problems, it's main features are these:
  22.                 1) No 640K memory restrictions.
  23.                 2) Much faster.
  24.                         :
  25.                         :
  26.                         :
  27.  
  28.  
  29.  This happened a few months ago, after compiling GLE under Linux in october
  30.  1993. GLE 32 for DOS was released in January 1994. Now, it's:
  31.  
  32.                          GLE for OS/2
  33.                          ------------
  34.  
  35. ------------------------------------------------------------------------------
  36.  
  37.  
  38.                         Installation
  39.                         ------------
  40.  
  41.   First of all, get the runtime package of EMX (EMX is the GNU C port for
  42.   OS/2 by Eberhard Mattes), if it is *not* included in this package. It is
  43.   included, if you can find emx.exe, emx.dll.... in the \glepm\exe directory.
  44.   The runtime package is called emxrt.zip and is available for anonymous
  45.   ftp on:
  46.  
  47.   ftp.uni-stuttgart.de [129.69.8.13]:  /pub/systems/os2/emx-0.8h
  48.   ftp-os2.cdrom.com:   [192.153.46.2]: /os2/2_x/unix/gnu/emx08h
  49.   src.doc.ic.ac.uk     [146.169.2.1]:  /pub/packages/os2/2_x/unix/gnu/emx08h
  50.   ftp.informatik.tu-muenchen.de [131.159.0.198]: 
  51.                                       /pub/comp/os/os2/devtools/emx+gcc
  52.   
  53.   If you don't already have unzip, get it, it's available on these sites, too.
  54.   Don't forget to switch your ftp utility into the binary mode.
  55.  
  56.   Unzip the archives of  GLE for OS/2  and  EMX with
  57.         unzip something.zip
  58.  
  59.   or, if you use pkunzip
  60.         pkunzip -d something.zip 
  61.  
  62.  
  63.   You must set the environment variable  GLE_TOP, include the directory,
  64.   where the executables are in the  PATH  environment and the directory,
  65.   where the DLL's of EMX are in the  LIBPATH  environment.
  66.  
  67.   Change/add the following lines in your config.sys:  
  68.  
  69.         set GLE_TOP=c:/glepm
  70.         set PATH=......;c:\glepm\exe
  71.         set LIBPATH=......;c:\emx\dll
  72.         
  73.   A slash at the end of GLE_TOP is no more important in this version.
  74.   This example assumes, that you installed GLE and EMX on drive C.
  75.  
  76.   Reboot your computer, and GLE is ready to run....
  77.  
  78.  
  79.  
  80.    Differences between GLE for OS/2, for DOS and for UNIX/X-Window-System
  81.    ----------------------------------------------------------------------
  82.                       and instructions to use
  83.                       -----------------------
  84.  
  85.    If gle_vga (DOS) draws a graph onto the screen, it switches from text- to
  86.    the graphics-mode. The editor of gle_x (X-Windows) runs in text-mode, too.
  87.    If it draws a graph, it forces the X-Windows server to create a new window
  88.    on a specified display and draws into it. Under OS/2, it is possible
  89.    to run a OS/2 text-mode program in a PM Window, but it's impossible (or
  90.    not documented), to force the PM to create a new window and to draw into
  91.    it. Gnuplot for PM calls *another* program (gnupmdrv.exe) to do the drawing
  92.    stuff. Since OS/2 programs are marked as FullScreen (text-mode, only in
  93.    fullscreen mode), WindowCompatible (text-mode, windowable) or WindowAPI
  94.    (PM program), and I did not want to rewrite the text-mode part of GLE to
  95.    use a 'Vio Presentation Space' (since EMX has no Borland-compatible
  96.    text-mode library, I rewrote some text-mode calls using EMX calls, though),
  97.    the editor of GLE runs in text-mode, as usual. gle_pm and surf_pm are
  98.    marked WindowCompatible. If GLE draws onto the PM, it writes the text being
  99.    edited into a temporary file (gleos2.tmp) and starts *itself* again. It is
  100.    possible to start a WindowCompat marked program as a PM program using the
  101.    following command (is it a bug? I hope, it will never be fixed!):
  102.    
  103.         start /pm program
  104.  
  105.    gle_pm and surf_pm use the API-call DosStartSession() to do this. GLE and
  106.    SURFACE determine what to do from their commandline-arguments. They switch
  107.    into displaying mode, when they get the DRAW option:
  108.  
  109.         start /pm gle_pm  /draw gleos2.tmp
  110.         start /pm surf_pm surfos2.tmp /d /o -b something.sur
  111.         
  112.    If the drawing is finished, GLE normally prints error messages to the
  113.    screen, if there are any. Since I don't know yet, how to make the editor-
  114.    and the drawing-instance communicate with each other (shared memory,
  115.    pipes, semaphores... all these IBMisms. Chris Pugmire, the author of GLE,
  116.    might not be able to regcognize his source, if I implement this :^), the
  117.    drawing instance of gle_pm displays a message on it's title bar, if
  118.    there were errors, warnings or messages during compilation. You can go
  119.    back to the editor instance of gle_pm by using the keystroke ALT+TAB.
  120.    Then press F5 to display these messages. gle_pm writes them into the file
  121.    GLEOS2.ERR. surf_pm behaves a little bit different. You won't see any
  122.    graphics window, if there are severe errors, since it does not display
  123.    anything if errors happen. If no graphics window appears after pressing
  124.    F10, you should press F5 and take a look at the error messages.
  125.  
  126.    The graphics-instances are *replaced* , if there is one running and you
  127.    press F10 again. The old graphics-instance was killed by DosStopSession().
  128.    
  129.    The graphics portion of GLE_PM draws into a visible 'micro Presentation
  130.    Space'. If the drawing is finished, a memory micro Presentation Space
  131.    (a bitmap) is allocated and the contents of the drawing is copied into
  132.    it. This enables quick redrawing of the window contents, if it was hidden
  133.    behind another window and made visible again. Then, the reverse
  134.    BitBlockTransfer operation happens, the bitmap is written back onto the
  135.    screen. This also happens, if the window-focus changes (if you click onto
  136.    an other window) when GLE is drawing. The window's contents is copied into
  137.    the bitmap and further drawing is done into the bitmap.
  138.  
  139.    gle_pm does not always listen for PM messages, therefore it may lock the
  140.    PM (the PM has only *one* message queue) for a short time. Press Ctrl-Esc
  141.    if the PM is locked. After a short time, a dialog box will appear. It
  142.    allows to terminate the drawing instance of gle_pm/surface_pm.
  143.  
  144.  
  145.  
  146.                         Speed
  147.                         -----
  148.    GLE_PM and SURF_PM under OS/2 2.x are no longer much slower than GLE
  149.    for DOS or Linux / X-Window System. I sped up the performance of PM line
  150.    drawing and moving by simply buffering the calls and flushing them from
  151.    time to time by using only one Gpi call. The overhead of the Graphics
  152.    Programming Interface is reduced and therefore does not consume much time.
  153.  
  154.    A new feature of this version is the ability to fill paths. A path consist
  155.    of line and move commands and can be filled. In the PostScript language,
  156.    a character of a font is a filled path. One can not simply replace a filled
  157.    path by a filled polygon, since a path can consist of move commands, a
  158.    polygon consists of lines only. The Graphics Programming Interface (GPI)
  159.    of the PM is able to draw and fill paths. Due to this complexity, the
  160.    GPI is quite slow.... Since one can not buffer move-calls inside a path,
  161.    gle_pm does not fill characters by default (all tex**** fonts are filled
  162.    paths). This inceases the drawing speed by more than a factor of two. 
  163.    If you set the environment-variable GLEPMFONTFILL to something, e.g.
  164.    
  165.         set GLEPMFONTFILL=1
  166.  
  167.    gle_pm fills fonts, too.
  168.  
  169.    To increase speed, gle_pm will never draw both, the outline and the filled
  170.    interior. You will not always see an outline around a filled area.
  171.    However, if the background color is white, gle_pm draws the outline and
  172.    not the interior. gle_pm knows about the winding rule, but it can not
  173.    reverse a path..... The best way, to preview gle drawings that use a path,
  174.    is to use Ghostscript (see below), since the interactive drivers can only
  175.    *emulate* PostScript specials with calls of an other graphics libraries.
  176.    But they are much faster.....
  177.    Clipping isn't supported yet.
  178.  
  179.    After realising, that drawing thick lines in a PM window is slow and
  180.    only possible inside of a path environment, I removed the code that
  181.    switches between line-widths. gle_pm can draw shade and grid patterns
  182.    (see shade.gle, dvifill.gle or wallx.gle). They look different compared
  183.    to the output of GLE_PS + Ghostscript (a postscript emulator).
  184.    There are only 8 different line-styles available. It is not possible,
  185.    to define new line-styles and grid/shade patterns like under Turbo-C's BGI
  186.    or under the X-Window System. This version draws (filled or not filled)
  187.    circles or rectangles correctly, in other words, the can be stretched or
  188.    rotated.
  189.  
  190.  
  191.    OS/2 2.x still *loves* RAM and large datasets cause swapping and slow it
  192.    down, if you have 8MB or less. The harddisk cache isn't as good as smartdrv
  193.    under DOS and should be resizeable as Linux's (shrink, when applications
  194.    need more memory).
  195.    
  196.    A number of applications write a lot of data to the disk. If disk-writes
  197.    are cached, the performance increases under normal circumstances.
  198.    Due to this fact, I recommend a cache-size of 1MB on 8MB systems.
  199.    To enable lazy-writing with a large delay, add the following (or a similar)
  200.    line to the config.sys:
  201.    
  202.      RUN=C:\OS2\CACHE.EXE /MaxAge:120000 /DiskIdle:60000 /BufferIdle:60000 
  203.  
  204.   However, this is not true for surf_pm, since there is a brake somewhere in 
  205.   the library code between fprintf() <-> DosWrite().
  206.   Write-cacheing has nearly no effect....... The time needed to write
  207.   a bigfile onto a RAM-disk does not differ from the time to write it
  208.   onto a normal harddisk.
  209.  
  210.   Surface was dramatically slower under OS/2 than under DOS or Linux.
  211.   Therefore, I added a new command to the surface language: NOBIGFILE.
  212.   NOBIGFILE prevents surface from writing *bigfiles* to the disk. It's not
  213.   neccessary to write bigfiles to the disk during the 'design' phase.
  214.   For the final run, place an exclamation mark in front of NOBIGFILE. 
  215.   
  216.   Time needed to 'surface' jack.sur in seconds:
  217.  
  218.                  Linux   OS/2   OS/2(cached graphics)  DOS 16bit    DOS 32bit           
  219.                ---------------------------------------------------------------
  220.   bigfile:        4.5    12.5          11                5.5           5.5
  221.  
  222.   nobigfile:      2      ----           3                ---           2.5
  223.  
  224.  
  225.  
  226.   The time to draw jack.big with GLE (gle_xxx jack) in seconds does not vary
  227.   much between all systems:
  228.  
  229.          Linux   OS/2   OS/2(cached graphics)  DOS 16bit    DOS 32bit           
  230.        ---------------------------------------------------------------
  231.           6.5    ----           7                ----          6
  232.  
  233.  
  234.                          New features
  235.                          ------------
  236.  
  237.   GLE searches for gle-files to inlude in three directories:
  238.   The current directory, in GLE_TOP/lib and in a user-specified directory,
  239.   which can be made known to GLE by setting the environment-variable
  240.   GLE_USRLIB. This especially useful on multi-user systems.
  241.   
  242.         set GLE_USRLIB=f:/users/jones/glelib
  243.  
  244.  
  245.                          RESTRICTIONS and BUGS
  246.                          ---------------------
  247.  
  248.    1) The vector-fonts of the GLE for OS/2 are compatible to those from
  249.       GLE 32 for DOS and Linux. They are not compatible to 16 bit fonts
  250.       that come with the 16 bit release of GLE for DOS (by Chris Pugmire).
  251.       They may be compatible to fonts that were created under other
  252.       (small endian-) 32-bit operating-systems. If you use GLE under Linux,
  253.       too, it may be a good idea to mount the DOS-partition, that contains
  254.       GLE 32 or GLE for OS/2 (including fonts) and create a link:
  255.  
  256.       ln -s /dospartition-mount-directory/gle32/font /usr/local/gle/font
  257.  
  258.       If there is GLE 32 for DOS somewhere on a DOS partition (for example
  259.       f:), simply erase the fonts in the GLE-for-OS/2-directory and set
  260.       GLE_TOP=f:/gle32/. Graph.hlp and graph.idx and are in a different
  261.       format in the DOS version, therefore you should store the DOS and
  262.       the OS/2 graph.* files at a safe location, for example
  263.       f:\gle32\help.os2 and f:\gle32\help.dos.
  264.       
  265.       Add the following line to your DOS-autoexec.bat:
  266.  
  267.               copy f:\gle32\help.dos\graph.* f:\gle32
  268.  
  269.  
  270.       Add the following line to your OS/2-config.sys:
  271.  
  272.               call=c:\os2\xcopy.exe f:\gle32\help.os2\graph.* f:\gle32
  273.  
  274.       This will save approximately 900 kB harddisk space!
  275.  
  276.  
  277.  
  278.                      Getting help on commnon GLE problems
  279.                      ------------------------------------
  280.  
  281.     There is a mailing list to get and give help on GLE problems.
  282.  
  283.     To subscribe send a mail to:
  284.         listserver@tbone.biol.scarolina.edu
  285.     with a message containing:
  286.         sub glelist <your name>
  287.  
  288.     You can then ask questions or send messages, bug reports or work-arounds
  289.     by email to:
  290.         glelist@tbone.biol.scarolina.edu.
  291.     
  292.  
  293.  
  294.                          Related software
  295.                          ----------------
  296.  
  297.    The graphics language GLE can be called a subset of Postscript.
  298.    Path filling or clipping for example is only completely supported on
  299.    Postscript devices. I recommend to get the Postscript-interpreter
  300.    'Ghostscript' from an ftp site.
  301.    Ghostscript can display and print Postscript files which were produced
  302.    by gle_ps on the screen and on non-Postscript capable printers.
  303.    Ghostscript can convert Postscript files to various bitmap formats for
  304.    inclusion into word-processor documents. There's a PM and Windows
  305.    interface called GVPM. Ghostscript is free usable (GNU Public License),
  306.    fast and reliable. OS/2 comes with Postscript fonts (directory:
  307.    psfonts\*.pfb) and Ghostscript can use them. The quality of most of the
  308.    fonts, that come along with Ghostscript, isn't very high.
  309.    The TeX fonts, that come with GLE, have a nice appearance, if you use
  310.    gle_ps and Ghostscript.
  311.  
  312.  
  313.              Access to the patches for the source
  314.              ------------------------------------
  315.  
  316.    The complete sources are at least available from Chris Pugmire's
  317.    FTP-server tui.marc.cri.nz (161.29.1.128). GLE for OS/2 (binaries)
  318.    are available from ftp.informatik.tu-muenchen.de (131.159.0.198),
  319.    and from Chris Pugmire's site, too. If you like to upload GLE to other
  320.    ftp-servers, please do it :^)
  321.  
  322.  
  323.  
  324.                         Postscript documentation
  325.                         ------------------------                        
  326.  
  327.    The original Postscript documentation of GLE 3.2 has been replaced by
  328.    Stefan Mundt's reworked version. It can be printed on Postscript Printers
  329.    or with Ghostscript on supported, non Postscript capable printers.
  330.    I omitted the very large appendix. It contains tables of various fonts.
  331.    It's seperately available from tui.marc.cri.nz, too.
  332.   
  333.  
  334.                               LEGAL STUFF
  335.                               -----------
  336.  
  337.  Copyright-holders are:
  338.  
  339.  GLE:             Please ask Chris Pugmire.
  340.  
  341.  EMX/GCC:         Eberhard Mattes, Free Software Foundation.
  342.  
  343.  Ghostscript:     Aladdin Enterprises.
  344.  
  345.  Postscript:      Adobe.
  346.  
  347.  MS-DOS, Windows: Microsoft Corporation.
  348.  
  349.  OS/2,
  350.  Presentation
  351.  Manager:         IBM Corporation.
  352.  
  353.  Turbo-C, BGI:    Borland.
  354.  
  355.  X Window System: X Consortium, MIT.
  356.  
  357.  I should not forget:
  358.  
  359.  Linux:           Linux Torvalds and a lot of other people, far too much
  360.                   to be listed here.
  361.  
  362.  
  363.                  Legal stuff (selfprotection)
  364.                  ----------------------------
  365.  
  366.  LIKE ANYTHING ELSE THAT'S FREE,  GLE FOR OS/2  AND ITS ASSOCIATED UTILITIES
  367.  ARE PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED
  368.  OR IMPLIED. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES
  369.  RESULTING FROM THE USE OF THIS SOFTWARE.
  370.   
  371.  These programs are distributed in the hope that it will be useful,
  372.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  373.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  374.  
  375.  
  376.  
  377.                         Reporting bugs
  378.                         --------------
  379.  
  380.  Bug-reports are wellcome (to me and Chris Pugmire). It can not be guaranteed
  381.  that they will be fixed. You should report bugs, that seem to be unique to
  382.  GLE 32 and GLE for OS/2, to me. Please include a complete description of the
  383.  bug, the version of GLE and the GLE files with data.
  384.  
  385.  
  386.         Axel Rohde
  387.         email: exp109@physik.uni-kiel.d400.de
  388.  
  389.         Chris Pugmire's email adress: in%"srghcxp@grv.dsir.govt.nz"
  390.                                         srghcxp@grv.dsir.govt.nz
  391.  
  392.  
  393.  
  394.   Thanks to:
  395.   ----------
  396.  
  397.   Chris Pugmire         for creating GLE.
  398.  
  399.  
  400.   Eberhard Mattes       for porting GCC to OS/2 (and DOS), and for emTeX,
  401.                         of course. 
  402.  
  403.   all the GCC and Gnu people and all other people, who write free software.
  404.  
  405.   Lars Petersen         for OS/2 documentation.
  406.   
  407.   Hartmut Schirmer      for BCC2GRX, GRX under Linux and help with GLE 32.
  408.  
  409.   Kordt Griepenkerl     for the book and for bug-reports.
  410.  
  411.   Ed Nather             for reporting bugs + fixes.
  412.  
  413.   Andrey Grozin         for the contribution of the
  414.                         Feynman Diagram Library.
  415.  
  416.   Joe Huber             for the hint, that ecvt() is never used.
  417.          
  418.   Dream Theater,
  419.   Fates Warning,
  420.   Queensrÿche,
  421.   Dire Straits,
  422.   Megadeth,
  423.   and other bands.      for protecting me against the noise of 
  424.                         OS/2 swapping on the HardDisk.
  425.  
  426.   Thanks to that guy who sold me cheap 16MB RAM to shut up OS/2.....
  427.  
  428.  
  429.  
  430.   Happy GLEing,
  431.         Axel Rohde
  432.         January 1995
  433.